/*- * See the file LICENSE for redistribution information. * * Copyright (c) 2002-2006 * Sleepycat Software. All rights reserved. * * $Id: EnvironmentConfig.java,v 1.1 2006/05/06 08:59:27 ckaestne Exp $ */ package com.sleepycat.je; import java.util.Properties; import com.sleepycat.je.config.ConfigParam; import com.sleepycat.je.config.EnvironmentParams; /** * Javadoc for this public class is generated * via the doc templates in the doc_src directory. */ public class EnvironmentConfig extends EnvironmentMutableConfig { /* * For internal use, to allow null as a valid value for * the config parameter. */ static EnvironmentConfig DEFAULT = new EnvironmentConfig(); /** * For unit testing, to prevent creating the utilization profile DB. */ private boolean createUP = true; /** * For unit testing, to prevent writing utilization data during checkpoint. */ private boolean checkpointUP = true; private boolean allowCreate = false; /** * For unit testing, to set readCommitted as the default. */ private boolean txnReadCommitted = false; /** * Javadoc for this public method is generated via * the doc templates in the doc_src directory. */ public EnvironmentConfig() { super(); } /** * Javadoc for this public method is generated via * the doc templates in the doc_src directory. */ public EnvironmentConfig(Properties properties) throws IllegalArgumentException { super(properties); } /** * Javadoc for this public method is generated via * the doc templates in the doc_src directory. */ public void setAllowCreate(boolean allowCreate) { this.allowCreate = allowCreate; } /** * Javadoc for this public method is generated via * the doc templates in the doc_src directory. */ public boolean getAllowCreate() { return allowCreate; } /** * Javadoc for this public method is generated via * the doc templates in the doc_src directory. */ public void setLockTimeout(long timeout) throws IllegalArgumentException { setVal(EnvironmentParams.LOCK_TIMEOUT, Long.toString(timeout)); } /** * Javadoc for this public method is generated via * the doc templates in the doc_src directory. */ public long getLockTimeout() { String val = getVal(EnvironmentParams.LOCK_TIMEOUT); long timeout = 0; try { timeout = Long.parseLong(val); } catch (NumberFormatException e) { throw new IllegalArgumentException ("Bad value for timeout:" + e.getMessage()); } return timeout; } /** * Javadoc for this public method is generated via * the doc templates in the doc_src directory. */ public void setReadOnly(boolean readOnly) { setVal(EnvironmentParams.ENV_RDONLY, Boolean.toString(readOnly)); } /** * Javadoc for this public method is generated via * the doc templates in the doc_src directory. */ public boolean getReadOnly() { String val = getVal(EnvironmentParams.ENV_RDONLY); return (Boolean.valueOf(val)).booleanValue(); } /** * Javadoc for this public method is generated via * the doc templates in the doc_src directory. */ public void setTransactional(boolean transactional) { setVal(EnvironmentParams.ENV_INIT_TXN, Boolean.toString(transactional)); } /** * Javadoc for this public method is generated via * the doc templates in the doc_src directory. */ public boolean getTransactional() { String val = getVal(EnvironmentParams.ENV_INIT_TXN); return (Boolean.valueOf(val)).booleanValue(); } /** * Javadoc for this public method is generated via * the doc templates in the doc_src directory. */ public void setLocking(boolean locking) { setVal(EnvironmentParams.ENV_INIT_LOCKING, Boolean.toString(locking)); } /** * Javadoc for this public method is generated via * the doc templates in the doc_src directory. */ public boolean getLocking() { String val = getVal(EnvironmentParams.ENV_INIT_LOCKING); return (Boolean.valueOf(val)).booleanValue(); } /** * Javadoc for this public method is generated via * the doc templates in the doc_src directory. */ public void setTxnTimeout(long timeout) throws IllegalArgumentException { setVal(EnvironmentParams.TXN_TIMEOUT, Long.toString(timeout)); } /** * Javadoc for this public method is generated via * the doc templates in the doc_src directory. */ public long getTxnTimeout() { String val = getVal(EnvironmentParams.TXN_TIMEOUT); long timeout = 0; try { timeout = Long.parseLong(val); } catch (NumberFormatException e) { throw new IllegalArgumentException ("Bad value for timeout:" + e.getMessage()); } return timeout; } /** * Javadoc for this public method is generated via * the doc templates in the doc_src directory. */ public void setTxnSerializableIsolation(boolean txnSerializableIsolation) { setVal(EnvironmentParams.TXN_SERIALIZABLE_ISOLATION, Boolean.toString(txnSerializableIsolation)); } /** * Javadoc for this public method is generated via * the doc templates in the doc_src directory. */ public boolean getTxnSerializableIsolation() { String val = getVal(EnvironmentParams.TXN_SERIALIZABLE_ISOLATION); return (Boolean.valueOf(val)).booleanValue(); } /** * For unit testing, to set readCommitted as the default. */ void setTxnReadCommitted(boolean txnReadCommitted) { this.txnReadCommitted = txnReadCommitted; } /** * For unit testing, to set readCommitted as the default. */ boolean getTxnReadCommitted() { return txnReadCommitted; } /** * Javadoc for this public method is generated via * the doc templates in the doc_src directory. */ public void setConfigParam(String paramName, String value) throws IllegalArgumentException { /* Override this method to allow setting immutable properties. */ /* Is this a valid property name? */ ConfigParam param = (ConfigParam) EnvironmentParams.SUPPORTED_PARAMS.get(paramName); if (param == null) { throw new IllegalArgumentException (paramName + " is not a valid BDBJE environment configuration"); } setVal(param, value); } /** * For unit testing, to prevent creating the utilization profile DB. */ void setCreateUP(boolean createUP) { this.createUP = createUP; } /** * For unit testing, to prevent creating the utilization profile DB. */ boolean getCreateUP() { return createUP; } /** * For unit testing, to prevent writing utilization data during checkpoint. */ void setCheckpointUP(boolean checkpointUP) { this.checkpointUP = checkpointUP; } /** * For unit testing, to prevent writing utilization data during checkpoint. */ boolean getCheckpointUP() { return checkpointUP; } /** * Used by Environment to create a copy of the application * supplied configuration. */ EnvironmentConfig cloneConfig() { try { return (EnvironmentConfig) clone(); } catch (CloneNotSupportedException willNeverOccur) { return null; } } public String toString() { return ("allowCreate=" + allowCreate + "\n" + super.toString()); } }